function Be(t) {
    var e = "A5245A4630DD7CE9D8A967E33A50EB52C2634FD042C4BFBCF5A5C1317A234FD0D1D2C75D083946AF70CE480C399FAD8EEBE9F5A904F30E4D3C91CDD7C27C4D07E27015D46B29A003E9D49834E19041A7BA45A95E6161697975721E88949E8023DA682895086223683593F054E7AAE0E07C40DB33BD80EE5909CE48D17C07D097";
    return Qe(131),
        t = Re() + t,
        Ne(new Le("10001", "", e), t)
}

function Re() {
    var t = String(Date.parse(new Date)).substring(0, 10)
        , e = String(Math.random());
    return t + String(e + t + t + e).substring(0, 32)
}

function Le(t, e, n) {
    this.e = an(t),
        this.d = an(e),
        this.m = an(n),
        this.chunkSize = 2 * un(this.m),
        this.radix = 16,
        this.barrett = new An(this.m)
}

function Ne(t, e) {
    for (var n = new Array, i = e.length, r = 0; r < i;)
        n[r] = e.charCodeAt(r),
            r++;
    for (; n.length % t.chunkSize != 0;)
        n[r++] = 0;
    var o, a, s, c = n.length, u = "";
    for (r = 0; r < c; r += t.chunkSize) {
        for (s = new Ye,
                 o = 0,
                 a = r; a < r + t.chunkSize; ++o)
            s.digits[o] = n[a++],
                s.digits[o] += n[a++] << 8;
        var l = t.barrett.powMod(s, t.e);
        u += (16 == t.radix ? nn(l) : $e(l, t.radix)) + " "
    }
    return u.substring(0, u.length - 1)
}

var De, ze, Ue, Fe = 16, Ve = Fe, He = 65536, qe = He >>> 1, Ge = He * He, We = He - 1;

function Qe(t) {
    De = new Array(t);
    for (var e = 0; e < De.length; e++)
        De[e] = 0;
    ze = new Ye,
        (Ue = new Ye).digits[0] = 1
}

function Ye(t) {
    this.digits = "boolean" == typeof t && 1 == t ? null : De.slice(0),
        this.isNeg = !1
}

function Ze(t) {
    var e = new Ye(!0);
    return e.digits = t.digits.slice(0),
        e.isNeg = t.isNeg,
        e
}

function Ke(t) {
    var e = new Ye;
    e.isNeg = t < 0,
        t = Math.abs(t);
    for (var n = 0; t > 0;)
        e.digits[n++] = t & We,
            t = Math.floor(t / He);
    return e
}

function Xe(t) {
    for (var e = "", n = t.length - 1; n > -1; --n)
        e += t.charAt(n);
    return e
}

Qe(20),
    Ke(1e15);
var Je = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z");

function $e(t, e) {
    var n = new Ye;
    n.digits[0] = e;
    for (var i = xn(t, n), r = Je[i[1].digits[0]]; 1 == _n(i[0], ze);)
        i = xn(i[0], n),
            digit = i[1].digits[0],
            r += Je[i[1].digits[0]];
    return (t.isNeg ? "-" : "") + Xe(r)
}

var tn = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f");

function en(t) {
    for (var e = 15, n = "", i = 0; i < 4; ++i)
        n += tn[t & e],
            t >>>= 4;
    return Xe(n)
}

function nn(t) {
    for (var e = "", n = (un(t),
        un(t)); n > -1; --n)
        e += en(t.digits[n]);
    return e
}

function rn(t) {
    var e = 48
        , n = 97
        , a = 65;
    return t >= e && t <= e + 9 ? t - e : t >= a && t <= 90 ? 10 + t - a : t >= n && t <= n + 25 ? 10 + t - n : 0
}

function on(t) {
    for (var e = 0, n = Math.min(t.length, 4), i = 0; i < n; ++i)
        e <<= 4,
            e |= rn(t.charCodeAt(i));
    return e
}

function an(t) {
    for (var e = new Ye, i = t.length, n = 0; i > 0; i -= 4,
        ++n)
        e.digits[n] = on(t.substr(Math.max(i - 4, 0), Math.min(i, 4)));
    return e
}

function sn(t, e) {
    var n;
    if (t.isNeg != e.isNeg)
        e.isNeg = !e.isNeg,
            n = cn(t, e),
            e.isNeg = !e.isNeg;
    else {
        n = new Ye;
        for (var i, r = 0, o = 0; o < t.digits.length; ++o)
            i = t.digits[o] + e.digits[o] + r,
                n.digits[o] = i % He,
                r = Number(i >= He);
        n.isNeg = t.isNeg
    }
    return n
}

function cn(t, e) {
    var n;
    if (t.isNeg != e.isNeg)
        e.isNeg = !e.isNeg,
            n = sn(t, e),
            e.isNeg = !e.isNeg;
    else {
        var i, r;
        n = new Ye,
            r = 0;
        for (var o = 0; o < t.digits.length; ++o)
            i = t.digits[o] - e.digits[o] + r,
                n.digits[o] = i % He,
            n.digits[o] < 0 && (n.digits[o] += He),
                r = 0 - Number(i < 0);
        if (-1 == r) {
            for (r = 0,
                     o = 0; o < t.digits.length; ++o)
                i = 0 - n.digits[o] + r,
                    n.digits[o] = i % He,
                n.digits[o] < 0 && (n.digits[o] += He),
                    r = 0 - Number(i < 0);
            n.isNeg = !t.isNeg
        } else
            n.isNeg = t.isNeg
    }
    return n
}

function un(t) {
    for (var e = t.digits.length - 1; e > 0 && 0 == t.digits[e];)
        --e;
    return e
}

function ln(t) {
    var e, n = un(t), i = t.digits[n], r = (n + 1) * Ve;
    for (e = r; e > r - Ve && 0 == (32768 & i); --e)
        i <<= 1;
    return e
}

function fn(t, e) {
    for (var n, i, r, o = new Ye, a = un(t), s = un(e), c = 0; c <= s; ++c) {
        n = 0,
            r = c;
        for (var u = 0; u <= a; ++u,
            ++r)
            i = o.digits[r] + t.digits[u] * e.digits[c] + n,
                o.digits[r] = i & We,
                n = i >>> Fe;
        o.digits[c + a + 1] = n
    }
    return o.isNeg = t.isNeg != e.isNeg,
        o
}

function hn(t, e) {
    var n, i, r, o = new Ye;
    n = un(t),
        i = 0;
    for (var a = 0; a <= n; ++a)
        r = o.digits[a] + t.digits[a] * e + i,
            o.digits[a] = r & We,
            i = r >>> Fe;
    return o.digits[1 + n] = i,
        o
}

function dn(t, e, n, i, r) {
    for (var o = Math.min(e + r, t.length), a = e, s = i; a < o; ++a,
        ++s)
        n[s] = t[a]
}

var pn = new Array(0, 32768, 49152, 57344, 61440, 63488, 64512, 65024, 65280, 65408, 65472, 65504, 65520, 65528, 65532, 65534, 65535);

function vn(t, e) {
    var n = Math.floor(e / Ve)
        , i = new Ye;
    dn(t.digits, 0, i.digits, n, i.digits.length - n);
    for (var r = e % Ve, o = Ve - r, a = i.digits.length - 1, s = a - 1; a > 0; --a,
        --s)
        i.digits[a] = i.digits[a] << r & We | (i.digits[s] & pn[r]) >>> o;
    return i.digits[0] = i.digits[a] << r & We,
        i.isNeg = t.isNeg,
        i
}

var gn = new Array(0, 1, 3, 7, 15, 31, 63, 127, 255, 511, 1023, 2047, 4095, 8191, 16383, 32767, 65535);

function mn(t, e) {
    var n = Math.floor(e / Ve)
        , i = new Ye;
    dn(t.digits, n, i.digits, 0, t.digits.length - n);
    for (var r = e % Ve, o = Ve - r, a = 0, s = a + 1; a < i.digits.length - 1; ++a,
        ++s)
        i.digits[a] = i.digits[a] >>> r | (i.digits[s] & gn[r]) << o;
    return i.digits[i.digits.length - 1] >>>= r,
        i.isNeg = t.isNeg,
        i
}

function bn(t, e) {
    var n = new Ye;
    return dn(t.digits, 0, n.digits, e, n.digits.length - e),
        n
}

function yn(t, e) {
    var n = new Ye;
    return dn(t.digits, e, n.digits, 0, n.digits.length - e),
        n
}

function wn(t, e) {
    var n = new Ye;
    return dn(t.digits, 0, n.digits, 0, e),
        n
}

function _n(t, e) {
    if (t.isNeg != e.isNeg)
        return 1 - 2 * Number(t.isNeg);
    for (var n = t.digits.length - 1; n >= 0; --n)
        if (t.digits[n] != e.digits[n])
            return t.isNeg ? 1 - 2 * Number(t.digits[n] > e.digits[n]) : 1 - 2 * Number(t.digits[n] < e.digits[n]);
    return 0
}

function xn(t, e) {
    var n, i, r = ln(t), o = ln(e), a = e.isNeg;
    if (r < o)
        return t.isNeg ? ((n = Ze(Ue)).isNeg = !e.isNeg,
            t.isNeg = !1,
            e.isNeg = !1,
            i = cn(e, t),
            t.isNeg = !0,
            e.isNeg = a) : (n = new Ye,
            i = Ze(t)),
            new Array(n, i);
    n = new Ye,
        i = t;
    for (var s = Math.ceil(o / Ve) - 1, c = 0; e.digits[s] < qe;)
        e = vn(e, 1),
            ++c,
            ++o,
            s = Math.ceil(o / Ve) - 1;
    i = vn(i, c),
        r += c;
    for (var u = Math.ceil(r / Ve) - 1, l = bn(e, u - s); -1 != _n(i, l);)
        ++n.digits[u - s],
            i = cn(i, l);
    for (var f = u; f > s; --f) {
        var h = f >= i.digits.length ? 0 : i.digits[f]
            , d = f - 1 >= i.digits.length ? 0 : i.digits[f - 1]
            , p = f - 2 >= i.digits.length ? 0 : i.digits[f - 2]
            , g = s >= e.digits.length ? 0 : e.digits[s]
            , v = s - 1 >= e.digits.length ? 0 : e.digits[s - 1];
        n.digits[f - s - 1] = h == g ? We : Math.floor((h * He + d) / g);
        for (var b = n.digits[f - s - 1] * (g * He + v), m = h * Ge + (d * He + p); b > m;)
            --n.digits[f - s - 1],
                b = n.digits[f - s - 1] * (g * He | v),
                m = h * He * He + (d * He + p);
        (i = cn(i, hn(l = bn(e, f - s - 1), n.digits[f - s - 1]))).isNeg && (i = sn(i, l),
            --n.digits[f - s - 1])
    }
    return i = mn(i, c),
        n.isNeg = t.isNeg != a,
    t.isNeg && (n = a ? sn(n, Ue) : cn(n, Ue),
        i = cn(e = mn(e, c), i)),
    0 == i.digits[0] && 0 == un(i) && (i.isNeg = !1),
        new Array(n, i)
}

function Sn(t, e) {
    return xn(t, e)[0]
}

function An(t) {
    this.modulus = Ze(t),
        this.k = un(this.modulus) + 1;
    var e = new Ye;
    e.digits[2 * this.k] = 1,
        this.mu = Sn(e, this.modulus),
        this.bkplus1 = new Ye,
        this.bkplus1.digits[this.k + 1] = 1,
        this.modulo = Mn,
        this.multiplyMod = Cn,
        this.powMod = kn
}

function Mn(t) {
    var e = yn(t, this.k - 1)
        , i = yn(fn(e, this.mu), this.k + 1)
        , s = cn(wn(t, this.k + 1), wn(fn(i, this.modulus), this.k + 1));
    s.isNeg && (s = sn(s, this.bkplus1));
    for (var n = _n(s, this.modulus) >= 0; n;)
        n = _n(s = cn(s, this.modulus), this.modulus) >= 0;
    return s
}

function Cn(t, e) {
    var n = fn(t, e);
    return this.modulo(n)
}

function kn(t, e) {
    var n = new Ye;
    n.digits[0] = 1;
    for (var i = t, r = e; 0 != (1 & r.digits[0]) && (n = this.multiplyMod(n, i)),
    0 != (r = mn(r, 1)).digits[0] || 0 != un(r);)
        i = this.multiplyMod(i, i);
    return n
}

console.log(Be("123123"));